﻿// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.

namespace System.Windows.Forms
{
    /// <summary>
    /// Rich edit control's option settings for Input Method Editor (IME) and 
    /// Asian language support
    /// </summary>
    [Flags]
    public enum RichTextBoxLanguageOptions
    {
        /// <summary>
        /// If this flag is set, the control automatically changes fonts when the
        /// user explicitly changes to a different keyboard layout. 
        /// </summary>
        AutoFont = 0x0002,

        /// <summary>
        /// Font-bound font sizes are scaled from insertion point size according to
        /// a script. For example, Asian fonts are slightly larger than Western.
        /// This is the default. 
        /// </summary>
        AutoFontSizeAdjust = 0x0010,

        /// <summary>
        /// If this flag is set, the control automatically changes the keyboard
        /// layout when the  user explicitly changes to a different font, or when
        /// the user explicitly changes the insertion point to a new location in
        /// the text.  
        /// </summary>
        AutoKeyboard = 0x0001,

        /// <summary>
        /// Sets the control to dual-font mode. Used for Asian language text.
        /// The control uses an English font for ASCII text and an Asian font for
        /// Asian text. 
        /// </summary>
        DualFont = 0x0080,

        /// <summary>
        /// Controls how Rich Edit notifies the client during IME composition:
        /// 0: No EN_CHANGE or EN_SELCHANGE notifications during undetermined state. 
        ///    Send notification when final string comes in. (default)
        /// 1: Send EN_CHANGE and EN_SELCHANGE events during undetermined state.
        /// </summary>
        ImeAlwaysSendNotify = 0x0008,

        /// <summary>
        /// This flag determines how the control uses the composition string of an
        /// IME if the user cancels it. If this flag is set, the control discards
        /// the composition string. If this flag is not set, the control uses the
        /// composition string as the result string. 
        /// </summary>
        ImeCancelComplete = 0x0004,

        /// <summary>
        /// Use UI default fonts. This option is turned off by default. 
        /// </summary>
        UIFonts = 0x0020
    }
}
